home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b8.d64 / demo 4.4.l < prev    next >
Text File  |  2007-02-28  |  4KB  |  225 lines

  1. 0010 // SAVE "0:BUTTERFLY.3"
  2. 0020 // MINDY SKELTON
  3. 0030 // DELETE "0:BUTTERFLY.1"
  4. 0040 //
  5. 0050 // PROCEDURES
  6. 0060 PROC INIT 
  7. 0070 DIM CLOUD$ OF 64, SHAPE$ OF 64, SHAPE1$ OF 64
  8. 0080 SETGRAPHIC 0
  9. 0090 BACKGROUND 6
  10. 0100 CLEAR 
  11. 0110 HIDETURTLE 
  12. 0120 CO:=0
  13. 0130 KO:=0
  14. 0140 ENDPROC INIT
  15. 0150 //
  16. 0160 PROC GROUND 
  17. 0170 RIGHT 90
  18. 0180 MOVETO 0,0
  19. 0190 PENCOLOR 13
  20. 0200 FORWARD 320
  21. 0210 FOR I:=1 TO 40 DO
  22. 0220 MOVETO 0,I
  23. 0230 IF I=40 THEN
  24. 0240 PENCOLOR 5
  25. 0250 ELSE 
  26. 0260 PENCOLOR 13
  27. 0270 ENDIF 
  28. 0280 FORWARD 320
  29. 0290 MOVETO 0,I
  30. 0300 ENDFOR I
  31. 0310 ENDPROC GROUND
  32. 0320 //
  33. 0330 PROC GRASS 
  34. 0340 PENCOLOR 5
  35. 0350 X:=RND(5,315)
  36. 0360 MOVETO X,40
  37. 0370 SETHEADING 0
  38. 0380 FORWARD 10
  39. 0390 FOR I:=2 TO 8 STEP 2 DO
  40. 0400 X1:=X-I
  41. 0410 MOVETO X1,40
  42. 0420 FORWARD (10-I)+RND(0,3)
  43. 0430 X2:=X+I
  44. 0440 MOVETO X2,40
  45. 0450 FORWARD (10-I)+RND(0,3)
  46. 0460 ENDFOR I
  47. 0470 ENDPROC GRASS
  48. 0480 //
  49. 0490 PROC FLOWER 
  50. 0500 X:=RND(5,315)
  51. 0510 LEAF(X)
  52. 0520 MOVETO X,40
  53. 0530 SETHEADING 0
  54. 0540 FORWARD 15
  55. 0550 MOVETO X,58
  56. 0560 PETAL
  57. 0570 ENDPROC FLOWER
  58. 0580 //
  59. 0590 PROC PETAL 
  60. 0600 OLD'COLOR:=PEEK(646)
  61. 0610 PENCOLOR 4
  62. 0620 FOR I:=1 TO 16 DO
  63. 0630 FORWARD 8
  64. 0640 RIGHT 170
  65. 0650 ENDFOR I
  66. 0660 PENCOLOR OLD'COLOR
  67. 0670 ENDPROC PETAL
  68. 0680 //
  69. 0690 PROC LEAF(X) CLOSED
  70. 0700 PENCOLOR 5
  71. 0710 MOVETO X,40
  72. 0720 SETHEADING 0
  73. 0730 FOR I:=1 TO 2 DO
  74. 0740 FOR J:=1 TO 13 DO
  75. 0750 FORWARD 1
  76. 0760 RIGHT 7
  77. 0770 ENDFOR J
  78. 0780 RIGHT 90
  79. 0790 ENDFOR I
  80. 0800 FILL X+2,42
  81. 0810 MOVETO X,40
  82. 0820 SETHEADING 0
  83. 0830 FOR I:=1 TO 2 DO
  84. 0840 FOR J:=1 TO 13 DO
  85. 0850 FORWARD 1
  86. 0860 LEFT 7
  87. 0870 ENDFOR J
  88. 0880 LEFT 90
  89. 0890 ENDFOR I
  90. 0900 FILL X-2,42
  91. 0910 ENDPROC LEAF
  92. 0920 //
  93. 0930 PROC SUN 
  94. 0940 PENCOLOR 7
  95. 0950 ASPECT:=1.3
  96. 0960 H:=260
  97. 0970 V:=180
  98. 0980 R:=10
  99. 0990 Y:=0
  100. 1000 FIRST:=TRUE
  101. 1010 D'THETA:=.1
  102. 1020 C:=COS(D'THETA)
  103. 1030 S:=SIN(D'THETA)
  104. 1040 N:=64
  105. 1050 FOR I:=1 TO N DO
  106. 1060 TEMP:=R*C-Y*S
  107. 1070 Y:=Y*C+R*S
  108. 1080 R:=TEMP
  109. 1090 SX:=ASPECT*R+H
  110. 1100 SY:=V-Y
  111. 1110 IF FIRST THEN
  112. 1120 MOVETO SX,SY
  113. 1130 FIRST:=FALSE
  114. 1140 ELSE 
  115. 1150 DRAWTO SX,SY
  116. 1160 ENDIF 
  117. 1170 ENDFOR I
  118. 1180 FILL H,V
  119. 1190 ENDPROC SUN
  120. 1200 //
  121. 1210 PROC BUTTERFLY 
  122. 1220 FOR I:=1 TO 63 DO
  123. 1230 READ XX
  124. 1240 SHAPE$:=SHAPE$+CHR$(XX)
  125. 1250 ENDFOR I
  126. 1260 FOR I:=1 TO 63 DO
  127. 1270 READ XX
  128. 1280 SHAPE1$:=SHAPE1$+CHR$(XX)
  129. 1290 ENDFOR I
  130. 1300 SHAPE$:=SHAPE$+CHR$(0)
  131. 1310 SHAPE1$:=SHAPE1$+CHR$(0)
  132. 1320 DEFINE 0,SHAPE$
  133. 1330 DEFINE 2,SHAPE1$
  134. 1340 IDENTIFY 0,0
  135. 1350 IDENTIFY 1,2
  136. 1360 SPRITECOLOR 0,7
  137. 1370 SPRITECOLOR 1,2
  138. 1380 FOR I:=0 TO 1 DO SPRITESIZE I,0,0
  139. 1390 ENDPROC BUTTERFLY
  140. 1400 //
  141. 1410 PROC CLOUD'MAKE 
  142. 1420 FOR I:=1 TO 63 DO
  143. 1430 READ CODE
  144. 1440 CLOUD$:=CLOUD$+CHR$(CODE)
  145. 1450 ENDFOR I
  146. 1460 CLOUD$:=CLOUD$+CHR$(0)
  147. 1470 DEFINE 1,CLOUD$
  148. 1480 IDENTIFY 4,1
  149. 1490 IDENTIFY 3,1
  150. 1500 IDENTIFY 5,1
  151. 1510 IDENTIFY 6,1
  152. 1520 IDENTIFY 7,1
  153. 1530 SPRITECOLOR 4,1
  154. 1540 SPRITECOLOR 3,1
  155. 1550 SPRITECOLOR 5,1
  156. 1560 SPRITECOLOR 6,1
  157. 1570 SPRITECOLOR 7,1
  158. 1580 SPRITESIZE 4,1,1
  159. 1590 SPRITESIZE 3,1,1
  160. 1600 SPRITESIZE 5,1,1
  161. 1610 SPRITESIZE 6,1,1
  162. 1620 SPRITESIZE 7,1,1
  163. 1630 SPRITEPOS 4,40,200
  164. 1640 SPRITEPOS 3,260,220
  165. 1650 SPRITEPOS 5,180,150
  166. 1660 SPRITEPOS 6,60,205
  167. 1670 SPRITEPOS 7,65,195
  168. 1680 ENDPROC CLOUD'MAKE
  169. 1690 //
  170. 1700 //
  171. 1710 PROC MOVE'SPRITE 
  172. 1720 FOR X:=1 TO 300 DO
  173. 1730 IF (X MOD 2)=0 THEN
  174. 1740 SPRITEPOS 0,X,100
  175. 1750 SPRITEPOS 1,X,100
  176. 1760 ELSE 
  177. 1770 SPRITEPOS 0,X,101
  178. 1780 SPRITEPOS 1,X,101
  179. 1790 ENDIF 
  180. 1800 FOR J:=1 TO 3 DO NULL
  181. 1810 ENDFOR X
  182. 1820 //FOR I:=0 TO 2 DO HIDESPRITE I
  183. 1830 ENDPROC MOVE'SPRITE
  184. 1840 //
  185. 1850 // MAIN
  186. 1860 //
  187. 1870 INIT
  188. 1880 GROUND
  189. 1890 REPEAT 
  190. 1900 FLOWER
  191. 1910 CO:=CO+1
  192. 1920 UNTIL CO>6
  193. 1930 REPEAT 
  194. 1940 GRASS
  195. 1950 KO:=KO+1
  196. 1960 UNTIL KO>6
  197. 1970 SUN
  198. 1980 CLOUD'MAKE
  199. 1990 BUTTERFLY
  200. 2000 REPEAT 
  201. 2010 MOVE'SPRITE
  202. 2020 UNTIL KEY$<>CHR$(0)
  203. 2030 //
  204. 2040 // DATA
  205. 2050 //
  206. 2060 CLOUD
  207. 2070 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  208. 2080 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  209. 2090 DATA 0,255,0,3,255,192,7,255,224,7,255,224,15,255,240
  210. 2100 DATA 127,255,254,255,255,255,127,255,254
  211. 2110 BUTTERFLY1
  212. 2120 DATA 192,0,3,248,0,31,184,0,29
  213. 2130 DATA 158,36,121,143,153,241,255,219,255
  214. 2140 DATA 255,255,255,225,231,135,255,231,255,248,231,31
  215. 2150 DATA 255,231,255,126,102,126,7,255,224,31,231,248
  216. 2160 DATA 63,126,252,127,231,254,103,165,230
  217. 2170 DATA 103,231,230,63,195,252,15,129,240,7,0,224
  218. 2180 BUTTERFLY2
  219. 2190 DATA 192,0,3,248,0,31,248,0,31
  220. 2200 DATA 254,0,127,255,153,255,255,219,255
  221. 2210 DATA 255,255,255,255,255,255,255,255,255,255,255,255
  222. 2220 DATA 255,255,255,127,255,254,7,255,224,31,255,248
  223. 2230 DATA 63,255,252,127,231,254,127,231,254
  224. 2240 DATA 127,231,254,63,195,252,15,129,240,7,0,224
  225.